<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Organizacion_domicilio_lst( $this );

	class Organizacion_domicilio_lst  extends Lst
	{
	function Organizacion_domicilio_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'L':
					$this->aShowColumns = array( 'Tipo', 'Domicilio', 'Telefono', 'Fax' );
					break;
			}
		}
		function initialize()
		{
			// Obtiene de su filtro los parametros que necesita para armar el query
			$this->oDomicilio = $this->oModule->loadClass( 'Domicilio_frm' );
			$this->oFiltro = $this->oModule->loadClass( 'organizacion_domicilio_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			$this->aFields['ncOrganizacion'] = getParam('ncOrganizacion');
			$this->setTitle ( "Domicilios" );
			$this->setSummary( "Esta tabla contiene el listado de domicilios de una organizacion" );
			$this->addColumn ( 'Tipo', 'cdTipoDomicilio' );
			$this->addColumn ( 'Domicilio', '' );
			$this->addColumn ( 'Telefono', '', '' );
			$this->addColumn ( 'Fax', '' );
		}
	function query()
		{
			// Arma el Query
					$cSql = "SELECT TDo.cdTipoDomicilio, bPorOmision, ODo.ncOrganizacion, ODo.ncDomicilio, Dom.nX, Dom.nY, ODo.bLectura
									FROM atOrganizacionDomicilio as ODo
									JOIN atDomicilio as Dom
										ON Dom.ncDomicilio = ODo.ncDomicilio
									JOIN acTipoDomicilio as TDo
										ON TDo.ncTipoDomicilio= ODo.ncTipoDomicilio";
			// Arma el Filtro de la Consulta
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray() , 'ODo' );
				return $cSql . $this->oWhere->make();
		}
	function makeColumn ( $aRow, $cField )
		{
			switch( $cField )
			{
				case 'Telefono':
					$cReturn = $this->oDomicilio->aFields['cPrefijoTelefono']->getValue() . ' ' .  $this->oDomicilio->aFields['cTelefono']->getValue();
					break;
				case 'Fax':
					if ( $aRow["ncDomicilio"] ) $cReturn = $this->oDomicilio->aFields['cPrefijoTelefono']->getValue() . ' ' .$this->oDomicilio->aFields['cFax']->getValue();
					return $cReturn;
					break;
				case 'Domicilio':
					$this->oDomicilio->setValue( $aRow["ncDomicilio"] );
					$cReturn = $this->oDomicilio->getDescription();
				break;
				default:
					return false;
				break;
			}
			return $cReturn;
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_DOMICILIO_A_UNA_ORGANIZACION, $cParametroRegistro , 'I', VENTANA_SECUNDARIA );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncOrganizacion=" . $aRow["ncOrganizacion"] . "&amp;ncDomicilio=" . $aRow["ncDomicilio"];
			if ( $aRow["bLectura"] == 0 )
			{
				$this->addRowAction ( MODIFICAR_DOMICILIO_DE_UNA_ORGANIZACION, $cParametroRegistro , '', VENTANA_SECUNDARIA);
				$this->addRowAction ( ELIMINAR_DOMICILIO_DE_UNA_ORGANIZACION,  $cParametroRegistro );
			}
			$this->addRowAction ( VER_DOMICILIO, $cParametroRegistro );
		}
	}
?>
